<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>面试题(反馈)</title>
</head>
<body>
    <h1>2022-7-11</h1>
    <script>
        /*
            1、js延迟加载的方式有哪些
        */
        //1.在script标签中使用defer属性告诉浏览器立即下载，延迟执行
        //2.在script标签中使用async属性,不让页面等待脚本下载执行,从而异步加载页面其他内容
        //3.动态创建DOM
        //4.使用setTimeout延迟执行
        //5.JQuery的getScript()方法
        //6.让JS在最后加载
        /**
         *  2、 es6新特征
         */
        //1.新增块级作用域let、const
        //2.数组新增API，像find，findIndex，filter...
        //3.新增Set、Map集合
        //4.箭头函数
        //5.函数参数默认值
        //6.    ...扩展符
        //7.模板语法``
        //8.函数生成器
        //9.Promise
        //.......
        /**
         * 3、JS哪些操作会造成内存泄漏
         */
        //1.闭包
        //2.意外的全局变量
        //3.没有清除的DOM元素引用
        //4.被遗忘的定时器或回调
        //......
        /**
         * 4、document.write和innerHTML的区别
         */
        //document.write是重写整个document
        //innerHTML是HTMLElement的属性，是一个元素内部的html内容
        //它可以精确控制写入的部分
        /**
         * 5、JS中常见的设计模式有哪些
         */
        //1.代理模式
        //2.迭代器模式
        //3.观察者模式(发布-订阅模式)
        //4.组合模式
        //5.状态模式
        //6.适配器模式
        //7.装饰者模式
        //8.模板模式
        //.....
        /**
         * 6、堆和栈的区别?
         */
        //栈:所有方法中定义的变量都是存在栈内存中，随着方法执行结束，这个方法的内存栈也会进行销毁
        //它存取速度比堆快，数据可共享，但是存取的大小是必须确定的，缺乏灵活性
        //堆:堆内存中的对象不会随着方法的结束而销毁...

        /**
         * 7、vue如何优化首屏加载速度
         */
        //1.vue-router使用懒加载
        //2.图片资源的压缩
        //3.UI库按需引入加载
        //......
        /**
         * 8、v-if和v-show的区别
         */
        //1.v-if支持分支语句
        //2.v-show是操控css设置display属性进行显示隐藏，v-if是通过控制dom元素的存在与否来控制显示隐藏
        //3.v-if创建时消耗资源较少，适合不频繁切换的情况下使用
        //4.v-show切换时销毁资源较少，适合频繁切换的情况下使用

        /**
         * 9、vue响应式原理
         */
        //当数据被改变视图也会进行更新
        //vue2采用的Object.defineProperty利用setter与getter方法的观察者模式来实现的
        //vue3改用了proxy，解决了Object.defineProperty的缺点

        /**
         * 10.v-if与v-for的优先级
         */
        //v-for更优先,不建议把这两个用在同一个元素上，会带来性能方面的浪费(每次渲染都会先循环再进行条件判断...)
    </script>
</body>
</html>